
function getSelectionStart(o) {
	if (o.createTextRange) {
		var r = document.selection.createRange().duplicate();
		r.moveEnd('character', o.value.length);
		if (r.text == '') 
			return o.value.length;
		return o.value.lastIndexOf(r.text);
	} else return o.selectionStart
}
$(document).ready(function(){
	$('.dee-file')
		//.find('input[type=file]').css('display','none').end()
		.find('input[type=text],input[type=button]').click(function(){
			$(this).parent().find('input[type=file]').click();alert('asd');
		});
	//к вводу разрешены только числа
	$('.dee-num').keypress(function(e){
		return(!isNaN(String.fromCharCode(e.keyCode || e.charCode)));
	});
	$('.dee-email').val('@.').keypress(function(e){
		res=true;
		err=false;
		inp=$(this);
		text=inp.val();
		//elog(e.keyCode)		
		isAt=e.keyCode==64 && e.shiftKey;
		isDot=e.keyCode==46;
		elog(e.keyCode);
		indexAt=text.indexOf('@',0);
		indexDot=text.indexOf('.',this.selectionEnd);
		selectedText=substring(this.selectionStart,this.selectionEnd);
		//elog(text);
		if(isAt)
		{
			elog(indexAt+' '+this.selectionStart);
			if(this.selectionStart==0||indexAt!=this.selectionStart)
				err=true;
			else
				this.setSelectionRange(this.selectionStart+1,this.selectionStart+1);
			res=false;
		}
		if(isDot)
		{
			if(indexDot==this.selectionStart)
			{
				this.setSelectionRange(this.selectionStart+1,this.selectionStart+1);
				res=false;
			}
		}
		//elog('curChar'+e.keyCode +' isDot -'+isDot+' isAt -'+isAt); 
		//elog(this.selectionStart);
		//elog(this.selectionEnd);
		if(err)
			inp.addClass('error');
		else 
			inp.removeClass('error');
			elog(res);
		return res		//inp.setSelectionRange(0, 0);		
	});
	$('.dee-select')
		.find('input[type=text]').attr('autocomplete','off')
		/*Клик по полю селекту*/
			.bind('focus',function(){
				select=$(this).parents('.dee-select:first');
				i=0;
				select
					.find('.option').removeClass('even hover').each(function(){
						if(i++%2==0) $(this).addClass('even');
					}).end()
					.find('.options').show();
			}).click(function(){$(this).focus()})
		/*Ввод текста в поле*/
			.keydown(function (e){	
			
				if(e.keyCode==40 || e.keyCode==38 || e.keyCode==13|| e.keyCode==27)
				{
					select=$(this).parents('.dee-select:first');
					i=0;
					//alert(e.keyCode);	
					opt=select.find('.options');
					hov=opt.find('.option.hover');
					sel=opt.find('.option.selected');
					up=false;
					switch(e.keyCode)
					{
						case 38://Вверх
							up=true;
						case 40://Вниз	
							opt.show();
							if(!hov.length && !sel.length)
							{
								opt.find('.option:not(.hidden):eq(0)').addClass('hover');
								opt.scrollTop(0);
							}
							else
							{
								/*Пропуск скрытых пунктов*/
								from=hov.length?hov:sel;
								obj=from;
								do	obj=up?obj.prev():obj.next();
								while(obj.attr('class') && obj.hasClass('hidden'))
								if (obj.attr('class'))
								{
									from.removeClass('hover');
									obj.addClass('hover');
									//Прокручиваю скролл
									opt.scrollTop((up?-obj.height():obj.height())+opt.scrollTop());
									
								}
							}
						break;
						case 13://Enter
							hov.click();
						break;
						case 27://Esc
							opt.hide();
							dee_select_click=false;
						break;						
					}
				}
			})
			.keyup(function(e){
				if(e.keyCode==40 || e.keyCode==38 || e.keyCode==13|| e.keyCode==27)
				return true;
				obj=$(this);
				val=obj.val();
				if(val=='')
				{
					obj.parents('.dee-select:first')				
						.find('input[type=hidden]').val('').end()
						.find('.option').removeClass('even selected hidden');
				}
				else
				{
					val=new RegExp(val, 'i');
					i=0;
					obj.parents('.dee-select:first')				
						.find('input[type=hidden]').val('').end()
						.find('.option').removeClass('even selected').addClass('hidden').each(function(){
							o=$(this);
							//alert('tut');
							text=o.text();
							if(text.match(val))
							{
								o.removeClass('hidden');
								if(i++%2==0) o.addClass('even');
							}
						});
				}
				
			}).end()
		/*Клик по стрелке*/
		.find('.arrow').click(function(){			
			select=$(this).parents('.dee-select:first');
			i=0;
			select
				.find('input[type=text]').val('').focus().end()
				.find('input[type=hidden]').val('').end()
				.find('.options')
					.find('.option').removeClass('even selected hover hidden').each(function(){
						if(i++%2==0) $(this).addClass('even');
					}).end()
				.show();
		}).end()
		.find('.option').click(function(){
			 op=$(this);
			op.parents('.dee-select:first')
				.find('.options').hide().end()
				.find('.option').removeClass('selected').end()
				.find('input[type=hidden]').val(op.attr('v')).end()
				.find('input[type=text]').val(op.text()).end()
				.end().addClass('selected').focus(); 
		});
		/*Колик вне выподающего окна*/
		dee_select_click =false;
		$(window).click(function(){if(!dee_select_click)$('.dee-select .options').hide();
		dee_select_click =false;});
		$('.dee-select').click(function (){dee_select_click =true;});
	elog('загружен файл амдин');
})